﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using STT.Business;
using STT.Entities;
using System.Collections.Generic;
using STT.Layer.Connection;
using System.Web;
using System.Net.Http;
using System.Globalization;
using System.Data.SqlTypes;
using Microsoft.Reporting.WebForms;
namespace STT.Admin.UserControls
{

    public partial class ucHocVien : System.Web.UI.UserControl
    {
        
        public bool chonSuaClick;
        public bool chonInClick;
        ToolBox tbx = new ToolBox();
        string MaCV, MaPB, MaTDVanHoa, MaTrinhDo, MaDT, MaDV, MaTinh1, MaHuyen1, MaTinh2, MaHuyen2, MaNhomNL;
        bool KiemTraCV, KiemTraPB, KiemTraTDVH, KiemTraTD, KiemTraDT, KiemTraDonVi,
             KiemTraMaNL, KiemTraBacLuong, KiemTraHSLuong, KiemTraLuongKhoan,
             KiemTraHSBL, KiemTraNganh, KiemTraHTDT, KiemTraTinh1, KiemTraTinh2,
             KiemTraHuyen1, KiemTraHuyen2, KiemTraXa1, KiemTraXa2, KTGiamDoc;
        bool KiemTraRong, KiemTraTonTai, Check;
        List<string> error;
        string count;
        DateTime Date;
        //bool test=true;
        int MaDonVi;


        protected void Page_Load(object sender, EventArgs e)
        {
            LoadHocVien();
            //ThongBao(Session["TenDN"].ToString());
            DataTable dt = BTbGiangVien.GiangVien_LayDonVi(new ETbGiangVien
            {
                MaGV = Session["TenDN"].ToString()
            });
            MaDonVi = Int32.Parse(dt.Rows[0][0].ToString());
            //LoadDropDownList();
          
               
             
              
            
          
        }
        void LoadHocVien()
        {
            gvHocVien.AutoGenerateColumns = false;
            //gvHocVien.DataSource = tbx.GetDataTableByNguoiTao("TbHocVien_SelectAllCustom", Session["TenDN"].ToString());
            gvHocVien.DataSource = BTbHocVien.SelectAllCustomTest(new ETbGiangVien { MaGV = Session["TenDN"].ToString() });
            gvHocVien.DataBind();
            
        }

        bool KiemTraDuLieuInport(string MaHV, string CMT)
        {
            return BTbHocVien.KiemTraDuLieu(new ETbHocVien
            {
                MaHV = MaHV,
                SoCMT = CMT
            });
        }
        bool KiemTraGiamDoc()
        {
            return BTbHocVien.KiemTraGiamDoc(new ETbHocVien
            {
                MaDonVi = MaDonVi
            });
        }
        bool KiemTraMaHV(string MaHV)
        {
            return BTbHocVien.KiemTraMaHV(new ETbHocVien
            {
                MaHV = MaHV
            });
        }
        
        void ThongBao(string Loi)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('" + Loi + "')</script>", false);
        }

        protected void gvHocVien_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ChonSua")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                Response.Redirect("~/Admin/Default.aspx?idpage=ndshv&idhv=" + gvHocVien.DataKeys[index].Value.ToString().Trim());               
            }
            if (e.CommandName == "ChonIn")
            {
                // Lay id
                int index = Convert.ToInt32(e.CommandArgument);
                string Ma_HV = gvHocVien.DataKeys[index].Value.ToString();
                DataTable dt2 = BTbHocVien.SelectByMaHV(new
              ETbHocVien
                {
                    MaHV = Ma_HV
                });


              


            }
        }

        protected void lbXoaTat_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gvHocVien.Rows.Count; i++)
                {
                    CheckBox cbChon = (CheckBox)gvHocVien.Rows[i].Cells[0].FindControl("cbChon");
                    if (cbChon != null && cbChon.Checked)
                    {
                        BTbDangNhap.DeleteByTenDN(gvHocVien.DataKeys[i].Value.ToString());
                        BTbHocVien_NgoaiNgu.DeleteByMaHV(gvHocVien.DataKeys[i].Value.ToString());
                        BTbHocVien_BangCap.Delete(gvHocVien.DataKeys[i].Value.ToString());
                        BTbHocVien.Delete(gvHocVien.DataKeys[i].Value.ToString());
                    }
                }

                LoadHocVien();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến một số Học viên vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }
        #region// Check int, float, datetime
        bool CheckDateTime(string String)
        {
            if (DateTime.TryParse(String, out Date))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        bool CheckInt(string String)
        {
            int Int;
            if (Int32.TryParse(String, out Int))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        bool CheckFloat(string String)
        {
            float Float;
            if (float.TryParse(String, out Float))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #endregion
        protected void btThemExcel_Click(object sender, EventArgs e)
        {
            if (fuUploadExcel.HasFile)
            {
                error = new List<string>();
                string FileName = fuUploadExcel.FileName;
                string[] str = fuUploadExcel.FileName.Split('.');
                string ten = str[0];
                string duoi = str[1];
                if(duoi == "xls" || duoi == "xlsx")
                {
                    string path = string.Concat(Server.MapPath("~/Uploads/Files/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ten + "." + duoi));
                    fuUploadExcel.PostedFile.SaveAs(path);
                    OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;");
                    OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon);
                    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(command);
                    OleDbcon.Open();
                    DataTable dt = new DataTable();
                    objAdapter1.Fill(dt);
                    if (dt.Rows.Count > 0)
                    {
                        //string MaHV = "HV" + BTbHocVien.TaoMaHV();
                        DataTable hv = BTbHocVien.SelectAll();
                        DataTable cv = BTbChucVu.SelectAll();
                        DataTable pb = BTbPhongBan.SelectAll();
                        DataTable tdhv = BTbTDHocVan.SelectAll();
                        DataTable tdcm = BTbTDChuyenMon.SelectAll();
                        DataTable dantoc = BTbDanToc.SelectAll1();
                        DataTable MaNL = BTbMaNgachLuong.SelectAll();
                        DataTable BL = BTbBacLuong.SelectAll();
                        DataTable HSL = BTbHeSoLuong.SelectAll();
                        DataTable LuongKhoan = BTbLuongKhoan.SelectAll();
                        DataTable HSBL = BTbHeSoBaoLuu.SelectAll();
                        DataTable Nganh = BTbNganh.SelectAll1();
                        DataTable HTDT = BTbHinhThucDaoTao.SelectAll();
                        DataTable Tinh = BTbTinh_TP.SelectAll1();
                        DataTable Xa = BTbXa_Phuong.SelectAll1();
                        DataTable Huyen = BTbHuyen_Quan.SelectAll();
                        DataTable NhomNL = BTbNhomNL.SelectAll();
                        DataTable dv = BTbDonVi.SelectAllDonViHocVien();

                        
                        BTbDangNhap dn = new BTbDangNhap();

                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            //test = true;
                            KiemTraRong = true;
                            KiemTraTonTai = true;
                            Check = true;
                            #region //Kiểm tra rỗng
                            //for (int o = 0; o < dt.Columns.Count; o++)
                            //{
                                //test = true;
                                KiemTraRong = true;
                                if (dt.Rows[i]["Số hiệu"].ToString().Trim().Equals("") || dt.Rows[i]["Họ và tên"].ToString().Trim().Equals(""))
                                {
                                    KiemTraRong = false;
                                    //est = false;
                                    error.Add("Lỗi bỏ trống trường của học viên " + dt.Rows[i]["Số hiệu"].ToString() + "!");
                                    continue;
                                }
                            //}
                            #endregion

                            
                            #region // Kiểm tra tồn tại học viên
                            for (int a = 0; a < hv.Rows.Count; a++)
                            {
                                if (dt.Rows[i]["Số hiệu"].ToString().ToLower().Trim() == hv.Rows[a][0].ToString().ToLower().Trim() ||
                                    dt.Rows[i]["Số CMND"].ToString().ToLower().Trim() == hv.Rows[a][18].ToString().ToLower().Trim())
                                {
                                    KiemTraTonTai = true;
                                    break;
                                }
                                else
                                {
                                    KiemTraTonTai = false;
                                }
                            }
                            if (KiemTraTonTai)
                            {
                                error.Add("Học viên " + dt.Rows[i]["Số hiệu"].ToString() + " đã tồn tại!");
                                continue;
                            }
                            #endregion
                            #region// Kiểm tra lỗi nhập dữ liệu datetime, int, float
                            if (!CheckDateTime(dt.Rows[i]["Ngày sinh"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày sinh của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckFloat(dt.Rows[i]["Hệ số lương"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Hệ số lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số thực!");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày hiệu lực lương"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày hiệu lực lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckFloat(dt.Rows[i]["Hệ số bảo lưu"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Hệ số bảo lưu của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số thực!");
                                Check = false;
                            }
                            if (!CheckInt(dt.Rows[i]["Số CMND"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Số CMTND của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số!");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày cấp CMND"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày cấp CMTND của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày vào ngành"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày vào ngành của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày vào cơ quan"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày vào cơ quan của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày tuyển dụng"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày tuyển dụng của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["ngày vào đảng"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày vào đảng của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckInt(dt.Rows[i]["SDT"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Số điện thoại của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số!");
                                Check = false;
                            }
                            #endregion
                            if (!KiemTraTonTai && KiemTraRong && Check)
                            {
                               
                                #region so sanh voi cac bang lien ket
                                #region// Kiểm tra chức vụ
                                for (int b = 0; b < cv.Rows.Count; b++)
                                {
                                    if (dt.Rows[i]["Chức vụ/ chức danh"].ToString().ToLower().Trim() == cv.Rows[b][1].ToString().ToLower().Trim())
                                    {
                                        
                                        MaCV = cv.Rows[b][0].ToString();
                                        if (KiemTraGiamDoc() && dt.Rows[i]["Chức vụ/ chức danh"].ToString().ToLower().Trim() == "giám đốc")
                                        {
                                            KTGiamDoc = true;
                                            error.Add("Chức vụ giám đốc của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " thuộc đơn vị " + MaDonVi + " đã tồn tại!");
                                        }
                                        KTGiamDoc = false;
                                        KiemTraCV = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraCV = false;
                                    }
                                }
                                if (!KiemTraCV)
                                {
                                    error.Add("Chức vụ của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra phòng ban
                                for (int c = 0; c < pb.Rows.Count; c++)
                                {
                                    if (dt.Rows[i]["Phòng ban"].ToString().ToLower().Trim() == pb.Rows[c][1].ToString().ToLower().Trim())
                                    {
                                        
                                        KiemTraPB = true;
                                        MaPB = pb.Rows[c][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraPB = false;
                                    }
                                }
                                if (!KiemTraPB)
                                {
                                    error.Add("Phòng ban của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra dân tộc
                                for (int d = 0; d < dantoc.Rows.Count; d++)
                                {
                                    if (dt.Rows[i]["Dân tộc"].ToString().ToLower().Trim() == dantoc.Rows[d][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraDT = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraDT = false;
                                    }
                                }
                                if (!KiemTraDT)
                                {
                                    error.Add("Dân tộc của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion 
                                #region// Kiểm tra mã ngạch lương
                                for (int k = 0; k < MaNL.Rows.Count; k++)
                                {
                                    if (dt.Rows[i]["Mã ngạch lương"].ToString().ToLower().Trim() == MaNL.Rows[k][0].ToString().ToLower().Trim())
                                    {
                                        KiemTraMaNL = true;
                                        MaNhomNL = MaNL.Rows[k][2].ToString().Trim();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraMaNL = false;
                                    }
                                }
                                if (!KiemTraMaNL)
                                {
                                    error.Add("Mã ngạch lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra bậc lương
                                for (int f = 0; f < BL.Rows.Count; f++)
                                {
                                    if (dt.Rows[i]["Bậc lương"].ToString().ToLower().Trim() == BL.Rows[f][0].ToString().ToLower().Trim())
                                    {
                                        KiemTraBacLuong = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraBacLuong = false;
                                    }
                                }
                                if (!KiemTraBacLuong)
                                {
                                    error.Add("Bậc lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra hệ số lương
                                for (int g = 0; g < HSL.Rows.Count; g++)
                                {
                                    if (dt.Rows[i]["Hệ số lương"].ToString().ToLower().Trim() == HSL.Rows[g][0].ToString().ToLower().Trim() &&
                                        MaNhomNL == HSL.Rows[g][2].ToString().Trim())
                                    {
                                        KiemTraHSLuong = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraHSLuong = false;
                                    }
                                }
                                if (!KiemTraHSLuong)
                                {
                                    error.Add("Hệ số lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra lương khoán
                                for (int h = 0; h < LuongKhoan.Rows.Count; h++)
                                {
                                    //ThongBao(dt.Rows[i][15].ToString());
                                    if (dt.Rows[i]["Lương khoán"].ToString().ToLower().Trim() == LuongKhoan.Rows[h][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraLuongKhoan = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraLuongKhoan = false;
                                    }
                                }
                                if (!KiemTraLuongKhoan)
                                {
                                    error.Add("Lương khoán của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra hệ số bảo lưu
                                for (int j = 0; j < HSBL.Rows.Count; j++)
                                {
                                    if (dt.Rows[i]["Hệ số bảo lưu"].ToString().ToLower().Trim() == HSBL.Rows[j][0].ToString().ToLower().Trim())
                                    {
                                        KiemTraHSBL = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraHSBL = false;
                                    }
                                }
                                if (!KiemTraHSBL)
                                {
                                    error.Add("Hệ số bảo lưu của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra Trình độ văn hóa
                                for (int h = 0; h < tdhv.Rows.Count; h++)
                                {
                                    if (dt.Rows[i]["Trình độ văn hóa"].ToString().ToLower().Trim() == tdhv.Rows[h][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraTDVH = true;
                                        MaTDVanHoa = tdhv.Rows[h][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraTDVH = false;
                                    }
                                }
                                if (!KiemTraTDVH)
                                {
                                    error.Add("Trình độ văn hóa của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra ngành
                                for (int j = 0; j < Nganh.Rows.Count; j++)
                                {
                                    if (dt.Rows[i]["Ngành nghề đào tạo"].ToString().ToLower().Trim() == Nganh.Rows[j][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraNganh = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraNganh = false;
                                    }
                                }
                                if (!KiemTraNganh)
                                {
                                    error.Add("Ngành nghề đào tạo của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra hình thức đào tạo
                                for (int j = 0; j < HTDT.Rows.Count; j++)
                                {
                                    if (dt.Rows[i]["Hình thức đào tạo"].ToString().ToLower().Trim() == HTDT.Rows[j][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraHTDT = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraHTDT = false;
                                    }
                                }
                                if (!KiemTraHTDT)
                                {
                                    error.Add("Hình thức đào tạo của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra trình độ
                                for (int l = 0; l < tdcm.Rows.Count; l++)
                                {
                                    if (dt.Rows[i]["Trình độ"].ToString().ToLower().Trim() == tdcm.Rows[l][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraTD = true;
                                        MaTrinhDo = tdcm.Rows[l][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraTD = false;
                                    }
                                }
                                if (!KiemTraTD)
                                {
                                    error.Add("Trình độ của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra đơn vị
                                for (int l = 0; l < dv.Rows.Count; l++)
                                {
                                    if (dt.Rows[i]["Đơn vị"].ToString().ToLower().Trim() == dv.Rows[l][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraDonVi = true;
                                        MaDV = dv.Rows[l][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraDonVi = false;
                                    }
                                }
                                if (!KiemTraDonVi)
                                {
                                    error.Add("Đơn vị học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #endregion
                                #region // Kiểm tra quê quán và chỗ ở hiện nay
                                //try
                                //{
                                //    string xa1, xa2, huyen1, huyen2, tinh1, tinh2;
                                //    string[] quequan = dt.Rows[i][34].ToString().Split(',');
                                //    xa1 = quequan[0].Trim();
                                //    huyen1 = quequan[1].Trim();
                                //    tinh1 = quequan[2].Trim();
                                //    string[] choo = dt.Rows[i][35].ToString().Split(',');
                                //    xa2 = choo[0].Trim();
                                //    huyen2 = choo[1].Trim();
                                //    tinh2 = choo[2].Trim();
                                //    #region Kiem tra Quê quán
                                //    #region Kiểm tra Tỉnh
                                //    for (int l = 0; l < Tinh.Rows.Count; l++)
                                //    {
                                //        if (tinh1.ToLower() == Tinh.Rows[l][1].ToString().ToLower().Trim())
                                //        {
                                //            KiemTraTinh1 = true;
                                //            MaTinh1 = Tinh.Rows[l][0].ToString();
                                //            #region Kiểm tra Huyện
                                //            for (int m = 0; m < Huyen.Rows.Count; m++)
                                //            {
                                //                if (huyen1.ToLower() == Huyen.Rows[m][1].ToString().ToLower().Trim() &&
                                //                    MaTinh1.ToLower().Trim() == Huyen.Rows[m][2].ToString().ToLower().Trim())
                                //                {
                                //                    KiemTraHuyen1 = true;
                                //                    MaHuyen1 = Huyen.Rows[m][0].ToString();
                                //                    #region Kiểm tra Xã
                                //                    for (int k = 0; k < Xa.Rows.Count; k++)
                                //                    {
                                //                        if (xa1.ToLower() == Xa.Rows[k][1].ToString().ToLower().Trim() &&
                                //                            MaHuyen1.ToLower().Trim() == Xa.Rows[k][2].ToString().ToLower().Trim())
                                //                        {
                                //                            KiemTraXa1 = true;
                                //                            break;
                                //                        }
                                //                        else
                                //                        {
                                //                            KiemTraXa1 = false;
                                //                        }
                                //                    }
                                //                    #endregion
                                //                    break;
                                //                }
                                //                else
                                //                {
                                //                    KiemTraHuyen1 = false;
                                //                }
                                //            }
                                //            #endregion
                                //            break;
                                //        }
                                //        else
                                //        {
                                //            KiemTraTinh1 = false;
                                //        }
                                //    }
                                //    if (!KiemTraXa1 || !KiemTraHuyen1 || !KiemTraTinh1)
                                //    {
                                //        error.Add("Quê quán của học viên " + dt.Rows[i][1].ToString() + " không tồn tại!");
                                //    }
                                //    #endregion
                                //    #endregion
                                //    #region Kiem tra Chỗ ở hiện nay
                                //    #region Kiểm tra Tỉnh
                                //    for (int l = 0; l < Tinh.Rows.Count; l++)
                                //    {
                                //        if (tinh2.ToLower() == Tinh.Rows[l][1].ToString().ToLower().Trim())
                                //        {
                                //            KiemTraTinh2 = true;
                                //            MaTinh2 = Tinh.Rows[l][0].ToString();
                                //            #region Kiểm tra Huyện
                                //            for (int m = 0; m < Huyen.Rows.Count; m++)
                                //            {
                                //                if (huyen2.ToLower() == Huyen.Rows[m][1].ToString().ToLower().Trim() &&
                                //                    MaTinh2.ToLower().Trim() == Huyen.Rows[m][2].ToString().ToLower().Trim())
                                //                {
                                //                    KiemTraHuyen2 = true;
                                //                    MaHuyen2 = Huyen.Rows[m][0].ToString();
                                //                    #region Kiểm tra Xã
                                //                    for (int k = 0; k < Xa.Rows.Count; k++)
                                //                    {
                                //                        if (xa2.ToLower() == Xa.Rows[k][1].ToString().ToLower().Trim() &&
                                //                            MaHuyen2.ToLower().Trim() == Xa.Rows[k][2].ToString().ToLower().Trim())
                                //                        {
                                //                            KiemTraXa2 = true;
                                //                            break;
                                //                        }
                                //                        else
                                //                        {
                                //                            KiemTraXa2 = false;
                                //                        }
                                //                    }
                                //                    #endregion
                                //                    break;
                                //                }
                                //                else
                                //                {
                                //                    KiemTraHuyen2 = false;
                                //                }
                                //            }
                                //            #endregion
                                //            break;
                                //        }
                                //        else
                                //        {
                                //            KiemTraTinh2 = false;
                                //        }
                                //    }
                                //    if (!KiemTraXa2 || !KiemTraHuyen2 || !KiemTraTinh2)
                                //    {
                                //        error.Add("Chỗ ở hiện nay của học viên " + dt.Rows[i][1].ToString() + " không tồn tại!");
                                //    }
                                //    #endregion
                                //    #endregion
                                //}
                                //catch
                                //{
                                //    error.Add("Quê quán hoặc chỗ ở hiện nay của học viên " + dt.Rows[i][1].ToString() + " phải có định dạng Xã/Phường, Huyện/Quận, Tỉnh/TP!");
                                //}
                                //#endregion
                                #endregion
                                if (KiemTraCV && KiemTraPB && KiemTraTD && KiemTraTDVH && KiemTraDT && KiemTraMaNL && KiemTraBacLuong &&
                                    KiemTraHSLuong && KiemTraLuongKhoan && KiemTraHSBL && KiemTraNganh && KiemTraHTDT && !KTGiamDoc && KiemTraDonVi)
                                {
                                    //try
                                    //{
                                                                       
                                        #region BTbHocVien.Insert
                                        BTbHocVien.Insert(new ETbHocVien
                                        {
                                            MaHV = dt.Rows[i]["Số hiệu"].ToString(),
                                            TenHV = dt.Rows[i]["Họ và tên"].ToString(),
                                            Ten = dt.Rows[i][3].ToString(),
                                            GioiTinh = dt.Rows[i]["Giới tính"].ToString(),
                                            ChucVu = Int32.Parse(MaCV),
                                            PhongBan = Int32.Parse(MaPB),
                                            NgaySinh = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày sinh"].ToString()).ToString("MM-dd-yyyy")),
                                            DanToc = dt.Rows[i]["Dân tộc"].ToString(),
                                            TinhTrangHD = dt.Rows[i]["Tình trạng hợp đồng"].ToString(),
                                            ToNhom = dt.Rows[i]["Tổ nhóm"].ToString(),
                                            MaNgachLuong = dt.Rows[i]["Mã ngạch lương"].ToString(),
                                            BacLuong = dt.Rows[i]["Bậc lương"].ToString(),
                                            HeSoLuong = Double.Parse(dt.Rows[i]["Hệ số lương"].ToString()),
                                            NgayHieuLucLuong = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày hiệu lực lương"].ToString()).ToString("MM-dd-yyyy")),
                                            LuongKhoan = dt.Rows[i]["Lương khoán"].ToString(),
                                            HeSoBaoLuu = Double.Parse(dt.Rows[i]["Hệ số bảo lưu"].ToString()),
                                            SoBHXH = dt.Rows[i]["Số sổ BHXH"].ToString(),
                                            SoBHYT = dt.Rows[i]["Số thẻ BHYT"].ToString(),
                                            SoCMT = dt.Rows[i]["Số CMND"].ToString(),
                                            NgayCapCMT = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày cấp CMND"].ToString()).ToString("MM-dd-yyyy")),
                                            NoiCapCMT = dt.Rows[i]["Nơi cấp CMND"].ToString(),
                                            TDVanHoa = Int32.Parse(MaTDVanHoa),
                                            HocHam = dt.Rows[i]["Học hàm"].ToString(),
                                            HocVi = dt.Rows[i]["Học vị"].ToString(),
                                            NganhNgheDaoTao = dt.Rows[i]["Ngành nghề đào tạo"].ToString(),
                                            HinhThucDaoTao = dt.Rows[i]["Hình thức đào tạo"].ToString(),
                                            TrinhDoQLKT = dt.Rows[i]["Trình dộ QLKT"].ToString(),
                                            TrinhDoLLCT = dt.Rows[i]["Trình độ LLCT"].ToString(),
                                            NgayVaoNganh = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày vào ngành"].ToString()).ToString("MM-dd-yyyy")),
                                            NgayVaoCoQuan = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày vào cơ quan"].ToString()).ToString("MM-dd-yyyy")),
                                            NgayTuyenDung = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày tuyển dụng"].ToString()).ToString("MM-dd-yyyy")),
                                            TrinhDo = Int32.Parse(MaTrinhDo),
                                            CongViecDangLam = dt.Rows[i]["Công việc đang làm"].ToString(),
                                            QueQuan = dt.Rows[i]["Quê quán"].ToString(),
                                            DiaChi = dt.Rows[i]["Chỗ ở hiện nay"].ToString(),
                                            Anh = dt.Rows[i]["Ảnh"].ToString(),
                                            HieuTrinhThanNhan = dt.Rows[i]["Hiệu chỉnh thân nhân"].ToString(),
                                            DangVien = dt.Rows[i][38].ToString(),
                                            NgayVaoDang = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày vào đảng"].ToString()).ToString("MM-dd-yyyy")),
                                            Sdt = dt.Rows[i]["SDT"].ToString(),
                                            Email = dt.Rows[i]["Email"].ToString(),
                                            MaLop = 2,
                                            ChucVuTrongLop = dt.Rows[i]["Chức vụ trong lớp"].ToString(),
                                            MaDonVi = Int32.Parse(MaDV),
                                            GhiChu = dt.Rows[i]["Ghi chú"].ToString(),
                                            TrangThaiTB = 0,
                                            Loai = 0,
                                            NguoiTao = Session["TenDN"].ToString()
                                        });
                                        #endregion
                                        BTbDangNhap.Insert(new ETbDangNhap
                                        {
                                            TenDangNhap = dt.Rows[i]["Số hiệu"].ToString(),
                                            MatKhau = dn.GetMD5("12345678"),
                                            Quyen = "4",
                                            RadomPass = dn.Radomchar(),
                                            KhoaTaiKhoan = 0
                                        });
                                    //}
                                    //catch (Exception ex)
                                    //{
                                    //    Response.Write("");
                                    //}
                                }
                            }
                        }
                        for (int k = 0; k < error.Count; k++)
                        {
                            count +=  " + " + error[k].ToString() + "<br/>";
                        }
                        if (error.Count > 0)
                        {
                            plError.Visible = true;
                            lbError.Text = "Bạn kiểm tra lại thông tin học viên:" + "<br/>"+ count;
                        }

                    }
                    OleDbcon.Close();
                  
                }
                else
                {
                    ThongBao("Bạn phải nhập file định dạng excel!");
                }
            }
            else
            {
                ThongBao("Bạn chưa tải tệp tin!");
            }
            LoadHocVien();
            Session["action"] = 1;
        }
        protected void btSuaExcel_Click(object sender, EventArgs e)
        {
            if (fuSuaExcel.HasFile)
            {
                error = new List<string>();
                string FileName = fuSuaExcel.FileName;
                string[] str = fuSuaExcel.FileName.Split('.');
                string ten = str[0];
                string duoi = str[1];
                if (duoi == "xls" || duoi == "xlsx")
                {
                    string path = string.Concat(Server.MapPath("~/Uploads/Files/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ten + "." + duoi));
                    fuSuaExcel.PostedFile.SaveAs(path);
                    OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;");
                    OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon);
                    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(command);
                    OleDbcon.Open();
                    DataTable dt = new DataTable();
                    objAdapter1.Fill(dt);
                    if (dt.Rows.Count > 0)
                    {
                        DataTable hv = BTbHocVien.SelectAll();
                        DataTable cv = BTbChucVu.SelectAll();
                        DataTable pb = BTbPhongBan.SelectAll();
                        DataTable tdhv = BTbTDHocVan.SelectAll();
                        DataTable tdcm = BTbTDChuyenMon.SelectAll();
                        DataTable dantoc = BTbDanToc.SelectAll1();
                        DataTable MaNL = BTbMaNgachLuong.SelectAll();
                        DataTable BL = BTbBacLuong.SelectAll();
                        DataTable HSL = BTbHeSoLuong.SelectAll();
                        DataTable LuongKhoan = BTbLuongKhoan.SelectAll();
                        DataTable HSBL = BTbHeSoBaoLuu.SelectAll();
                        DataTable Nganh = BTbNganh.SelectAll1();
                        DataTable HTDT = BTbHinhThucDaoTao.SelectAll();
                        DataTable Tinh = BTbTinh_TP.SelectAll1();
                        DataTable Xa = BTbXa_Phuong.SelectAll1();
                        DataTable Huyen = BTbHuyen_Quan.SelectAll();
                        DataTable Lop = BTbLop.SelectAll();
                        DataTable NhomNL = BTbNhomNL.SelectAll();
                        BTbDangNhap dn = new BTbDangNhap();
                        DataTable LayGiamDoc = BTbHocVien.LayGiamDoc(new ETbHocVien { MaDonVi = MaDonVi });
                        DataTable dv = BTbDonVi.SelectAllDonViHocVien();

                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            //test = true;
                            KiemTraRong = true;
                            KiemTraTonTai = true;
                            #region //Kiểm tra rỗng
                            //for (int o = 0; o < dt.Columns.Count; o++)
                            //{
                                //test = true;
                                KiemTraRong = true;
                                if (dt.Rows[i]["Số hiệu"].ToString().Trim().Equals("") || dt.Rows[i]["Họ và tên"].ToString().Trim().Equals(""))
                                {
                                    KiemTraRong = false;
                                    //est = false;
                                    error.Add("Lỗi bỏ trống trường của học viên " + dt.Rows[i]["Số hiệu"].ToString() + "!");
                                    continue;
                                }
                            //}
                            #endregion
                            #region // Kiểm tra tồn tại học viên
                            for (int a = 0; a < hv.Rows.Count; a++)
                            {
                                if (dt.Rows[i]["Số hiệu"].ToString().ToLower().Trim() == hv.Rows[a][0].ToString().ToLower().Trim() ||
                                    dt.Rows[i]["Số CMND"].ToString().ToLower().Trim() == hv.Rows[a][18].ToString().ToLower().Trim())
                                {
                                    KiemTraTonTai = true;
                                    break;
                                }
                                else
                                {
                                    KiemTraTonTai = false;
                                }
                            }
                            if (KiemTraTonTai)
                            {
                                error.Add("Học viên " + dt.Rows[i]["Số hiệu"].ToString() + " đã tồn tại!");
                                continue;
                            }
                            #region// Kiểm tra lỗi nhập dữ liệu datetime, int, float
                            if (!CheckDateTime(dt.Rows[i]["Ngày sinh"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày sinh của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckFloat(dt.Rows[i]["Hệ số lương"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Hệ số lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số thực!");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày hiệu lực lương"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày hiệu lực lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckFloat(dt.Rows[i]["Hệ số bảo lưu"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Hệ số bảo lưu của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số thực!");
                                Check = false;
                            }
                            if (!CheckInt(dt.Rows[i]["Số CMND"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Số CMTND của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số!");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày cấp CMND"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày cấp CMTND của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày vào ngành"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày vào ngành của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày vào cơ quan"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày vào cơ quan của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["Ngày tuyển dụng"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày tuyển dụng của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckDateTime(dt.Rows[i]["ngày vào đảng"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu ngày vào đảng của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng tháng/ngày/năm");
                                Check = false;
                            }
                            if (!CheckInt(dt.Rows[i]["SDT"].ToString().Trim()))
                            {
                                error.Add("Kiểu dữ liệu Số điện thoại của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không đúng! Nhập dạng số!");
                                Check = false;
                            }
                            #endregion
                            #endregion
                            if (KiemTraTonTai && KiemTraRong && Check)
                            {
                                #region so sanh voi cac bang lien ket
                                #region// Kiểm tra chức vụ
                                for (int b = 0; b < cv.Rows.Count; b++)
                                {
                                    if (dt.Rows[i]["Chức vụ/ chức danh"].ToString().ToLower().Trim() == cv.Rows[b][1].ToString().ToLower().Trim())
                                    {

                                        MaCV = cv.Rows[b][0].ToString();
                                        if (KiemTraGiamDoc() && dt.Rows[i]["Chức vụ/ chức danh"].ToString().ToLower().Trim() == "giám đốc")
                                        {
                                            KTGiamDoc = true;
                                            error.Add("Chức vụ giám đốc của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " thuộc đơn vị " + MaDonVi + " đã tồn tại!");
                                        }
                                        KTGiamDoc = false;
                                        KiemTraCV = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraCV = false;
                                    }
                                }
                                if (!KiemTraCV)
                                {
                                    error.Add("Chức vụ của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra phòng ban
                                for (int c = 0; c < pb.Rows.Count; c++)
                                {
                                    if (dt.Rows[i]["Phòng ban"].ToString().ToLower().Trim() == pb.Rows[c][1].ToString().ToLower().Trim())
                                    {

                                        KiemTraPB = true;
                                        MaPB = pb.Rows[c][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraPB = false;
                                    }
                                }
                                if (!KiemTraPB)
                                {
                                    error.Add("Phòng ban của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra dân tộc
                                for (int d = 0; d < dantoc.Rows.Count; d++)
                                {
                                    if (dt.Rows[i]["Dân tộc"].ToString().ToLower().Trim() == dantoc.Rows[d][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraDT = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraDT = false;
                                    }
                                }
                                if (!KiemTraDT)
                                {
                                    error.Add("Dân tộc của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra mã ngạch lương
                                for (int k = 0; k < MaNL.Rows.Count; k++)
                                {
                                    if (dt.Rows[i]["Mã ngạch lương"].ToString().ToLower().Trim() == MaNL.Rows[k][0].ToString().ToLower().Trim())
                                    {
                                        KiemTraMaNL = true;
                                        MaNhomNL = MaNL.Rows[k][2].ToString().Trim();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraMaNL = false;
                                    }
                                }
                                if (!KiemTraMaNL)
                                {
                                    error.Add("Mã ngạch lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra bậc lương
                                for (int f = 0; f < BL.Rows.Count; f++)
                                {
                                    if (dt.Rows[i]["Bậc lương"].ToString().ToLower().Trim() == BL.Rows[f][0].ToString().ToLower().Trim())
                                    {
                                        KiemTraBacLuong = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraBacLuong = false;
                                    }
                                }
                                if (!KiemTraBacLuong)
                                {
                                    error.Add("Bậc lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra hệ số lương
                                for (int g = 0; g < HSL.Rows.Count; g++)
                                {
                                    if (dt.Rows[i]["Hệ số lương"].ToString().ToLower().Trim() == HSL.Rows[g][0].ToString().ToLower().Trim() &&
                                        MaNhomNL == HSL.Rows[g][2].ToString().Trim())
                                    {
                                        KiemTraHSLuong = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraHSLuong = false;
                                    }
                                }
                                if (!KiemTraHSLuong)
                                {
                                    error.Add("Hệ số lương của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra lương khoán
                                for (int h = 0; h < LuongKhoan.Rows.Count; h++)
                                {
                                    //ThongBao(dt.Rows[i][15].ToString());
                                    if (dt.Rows[i]["Lương khoán"].ToString().ToLower().Trim() == LuongKhoan.Rows[h][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraLuongKhoan = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraLuongKhoan = false;
                                    }
                                }
                                if (!KiemTraLuongKhoan)
                                {
                                    error.Add("Lương khoán của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra hệ số bảo lưu
                                for (int j = 0; j < HSBL.Rows.Count; j++)
                                {
                                    if (dt.Rows[i]["Hệ số bảo lưu"].ToString().ToLower().Trim() == HSBL.Rows[j][0].ToString().ToLower().Trim())
                                    {
                                        KiemTraHSBL = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraHSBL = false;
                                    }
                                }
                                if (!KiemTraHSBL)
                                {
                                    error.Add("Hệ số bảo lưu của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra Trình độ văn hóa
                                for (int h = 0; h < tdhv.Rows.Count; h++)
                                {
                                    if (dt.Rows[i]["Trình độ văn hóa"].ToString().ToLower().Trim() == tdhv.Rows[h][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraTDVH = true;
                                        MaTDVanHoa = tdhv.Rows[h][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraTDVH = false;
                                    }
                                }
                                if (!KiemTraTDVH)
                                {
                                    error.Add("Trình độ văn hóa của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra ngành
                                for (int j = 0; j < Nganh.Rows.Count; j++)
                                {
                                    if (dt.Rows[i]["Ngành nghề đào tạo"].ToString().ToLower().Trim() == Nganh.Rows[j][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraNganh = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraNganh = false;
                                    }
                                }
                                if (!KiemTraNganh)
                                {
                                    error.Add("Ngành nghề đào tạo của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region// Kiểm tra hình thức đào tạo
                                for (int j = 0; j < HTDT.Rows.Count; j++)
                                {
                                    if (dt.Rows[i]["Hình thức đào tạo"].ToString().ToLower().Trim() == HTDT.Rows[j][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraHTDT = true;
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraHTDT = false;
                                    }
                                }
                                if (!KiemTraHTDT)
                                {
                                    error.Add("Hình thức đào tạo của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra trình độ
                                for (int l = 0; l < tdcm.Rows.Count; l++)
                                {
                                    if (dt.Rows[i]["Trình độ"].ToString().ToLower().Trim() == tdcm.Rows[l][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraTD = true;
                                        MaTrinhDo = tdcm.Rows[l][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraTD = false;
                                    }
                                }
                                if (!KiemTraTD)
                                {
                                    error.Add("Trình độ của học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }
                                #endregion
                                #region // Kiểm tra đơn vị
                                for (int l = 0; l < dv.Rows.Count; l++)
                                {
                                    if (dt.Rows[i]["Đơn vị"].ToString().ToLower().Trim() == dv.Rows[l][1].ToString().ToLower().Trim())
                                    {
                                        KiemTraDonVi = true;
                                        MaDV = dv.Rows[l][0].ToString();
                                        break;
                                    }
                                    else
                                    {
                                        KiemTraDonVi = false;
                                    }
                                }
                                if (!KiemTraDonVi)
                                {
                                    error.Add("Đơn vị học viên " + dt.Rows[i]["Số hiệu"].ToString() + " không tồn tại!");
                                }

                                #endregion
                                #endregion
                                if (KiemTraCV && KiemTraPB && KiemTraTD && KiemTraTDVH && KiemTraDT && KiemTraMaNL && KiemTraBacLuong &&
                                    KiemTraHSLuong && KiemTraLuongKhoan && KiemTraHSBL && KiemTraNganh && KiemTraHTDT && KiemTraDonVi)
                                {
                                    try
                                    {
                                        
                                        #region BTbHocVien.Insert
                                        BTbHocVien.UpdateByExcel(new ETbHocVien
                                        {
                                            MaHV = dt.Rows[i]["Số hiệu"].ToString(),
                                            TenHV = dt.Rows[i]["Họ và tên"].ToString(),
                                            Ten = dt.Rows[i][3].ToString(),
                                            GioiTinh = dt.Rows[i]["Giới tính"].ToString(),
                                            ChucVu = Int32.Parse(MaCV),
                                            PhongBan = Int32.Parse(MaPB),
                                            NgaySinh = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày sinh"].ToString()).ToString("MM-dd-yyyy")),
                                            DanToc = dt.Rows[i]["Dân tộc"].ToString(),
                                            TinhTrangHD = dt.Rows[i]["Tình trạng hợp đồng"].ToString(),
                                            ToNhom = dt.Rows[i]["Tổ nhóm"].ToString(),
                                            MaNgachLuong = dt.Rows[i]["Mã ngạch lương"].ToString(),
                                            BacLuong = dt.Rows[i]["Bậc lương"].ToString(),
                                            HeSoLuong = Double.Parse(dt.Rows[i]["Hệ số lương"].ToString()),
                                            NgayHieuLucLuong = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày hiệu lực lương"].ToString()).ToString("MM-dd-yyyy")),
                                            LuongKhoan = dt.Rows[i]["Lương khoán"].ToString(),
                                            HeSoBaoLuu = Double.Parse(dt.Rows[i]["Hệ số bảo lưu"].ToString()),
                                            SoBHXH = dt.Rows[i]["Số sổ BHXH"].ToString(),
                                            SoBHYT = dt.Rows[i]["Số thẻ BHYT"].ToString(),
                                            SoCMT = dt.Rows[i]["Số CMND"].ToString(),
                                            NgayCapCMT = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày cấp CMND"].ToString()).ToString("MM-dd-yyyy")),
                                            NoiCapCMT = dt.Rows[i]["Nơi cấp CMND"].ToString(),
                                            TDVanHoa = Int32.Parse(MaTDVanHoa),
                                            HocHam = dt.Rows[i]["Học hàm"].ToString(),
                                            HocVi = dt.Rows[i]["Học vị"].ToString(),
                                            NganhNgheDaoTao = dt.Rows[i]["Ngành nghề đào tạo"].ToString(),
                                            HinhThucDaoTao = dt.Rows[i]["Hình thức đào tạo"].ToString(),
                                            TrinhDoQLKT = dt.Rows[i]["Trình dộ QLKT"].ToString(),
                                            TrinhDoLLCT = dt.Rows[i]["Trình độ LLCT"].ToString(),
                                            NgayVaoNganh = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày vào ngành"].ToString()).ToString("MM-dd-yyyy")),
                                            NgayVaoCoQuan = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày vào cơ quan"].ToString()).ToString("MM-dd-yyyy")),
                                            NgayTuyenDung = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày tuyển dụng"].ToString()).ToString("MM-dd-yyyy")),
                                            TrinhDo = Int32.Parse(MaTrinhDo),
                                            CongViecDangLam = dt.Rows[i]["Công việc đang làm"].ToString(),
                                            QueQuan = dt.Rows[i]["Quê quán"].ToString(),
                                            DiaChi = dt.Rows[i]["Chỗ ở hiện nay"].ToString(),
                                            Anh = dt.Rows[i]["Ảnh"].ToString(),
                                            HieuTrinhThanNhan = dt.Rows[i]["Hiệu chỉnh thân nhân"].ToString(),
                                            DangVien = dt.Rows[i][38].ToString(),
                                            NgayVaoDang = DateTime.Parse(DateTime.Parse(dt.Rows[i]["Ngày vào đảng"].ToString()).ToString("MM-dd-yyyy")),
                                            Sdt = dt.Rows[i]["SDT"].ToString(),
                                            Email = dt.Rows[i]["Email"].ToString(),
                                            MaLop = 2,
                                            ChucVuTrongLop = dt.Rows[i]["Chức vụ trong lớp"].ToString(),
                                            MaDonVi = Int32.Parse(MaDV),
                                            GhiChu = dt.Rows[i]["Ghi chú"].ToString(),
                                            TrangThaiTB = 0,
                                            Loai = 0,
                                            NguoiTao = Session["TenDN"].ToString()

                                        });
                                        #endregion
                                        
                                    }
                                    catch (Exception ex)
                                    {
                                        Response.Write("");
                                    }

                                }
                            }
                        }
                        for (int k = 0; k < error.Count; k++)
                        {
                            count += " + " + error[k].ToString() + "<br/>";
                        }
                        if (error.Count > 0)
                        {
                            plError.Visible = true;
                            lbError.Text = "Bạn kiểm tra lại thông tin học viên:" + "<br/>" + count;
                        }

                    }
                    OleDbcon.Close();
                }
                else
                {
                    ThongBao("Bạn phải nhập file định dạng excel!");
                }
            }
            else
            {
                ThongBao("Bạn chưa tải tệp tin!");
            }
            LoadHocVien();
            Session["action"] = 2;
        }        

        protected void btSearch_Click(object sender, ImageClickEventArgs e)
        {
            DataTable dt = new DataTable();
            dt = BTbHocVien.SearchHocVien(new ETbHocVien
            {
                TenHV = txtTimKiem.Text
            });
            gvHocVien.DataSource = dt;
            gvHocVien.DataBind();
        }
        protected void gvHocVien_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvHocVien.PageIndex = e.NewPageIndex;
            gvHocVien.DataBind();
        }

        protected void gvHocVien_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string MaHV = gvHocVien.DataKeys[e.RowIndex].Value.ToString();
            BTbHocVien_NgoaiNgu.DeleteByMaHV(MaHV);
            BTbHocVien_BangCap.Delete(MaHV);
            BTbDangNhap.DeleteByTenDN(MaHV);
            BTbBangDiem.DeleteByMaHV(MaHV);
            BTbHocVien_PhanLop.DeleteByMaHV(MaHV);
            BTbHocVien.Delete(MaHV);
            LoadHocVien();
            Session["action"] = 3;
        }

       

        protected void HyperLink2_Disposed(object sender, EventArgs e)
        {

        }


    }
}